The present invention relates generally to time calibration of a measurement instruments and more particularly to a timebase calibration method for a sampling instrument, such as a equivalent time sampling oscilloscope.
An equivalent time sampling oscilloscope acquires a waveform record of a repetitive input signal in response to strobe pulses generated by the oscilloscope timebase. The timebase includes trigger circuitry, a voltage controlled oscillator and a strobe generator. The oscilloscope also includes front panel controls for setting acquisition and display parameters. The acquisition parameters include the time per division setting, acquisition window, sample spacing and the like. The acquisition parameters are interpreted by a controller, operating under program control, to produce the timebase parameters for generating the strobe pulses. The acquired waveform record is digitized and stored in oscilloscope memory for additional processing and display.
The voltage controlled gated oscillator is phase locked to a fixed reference clock provided in the oscilloscope. The oscillator initiates a clock signal upon receiving a trigger signal from the trigger circuitry. The strobe generator includes clock counter circuitry that provides a coarse delay and an interpolator for providing a fine delay. The controller loads a counter in the clock counter circuitry with a coarse delay value. The clock signal from the gated clock generator increments the counter. The clock counter circuitry generates an output pulse when the counter reaches the loaded terminal count. The output pulse is applied to a ramp generator that initiates a ramp signal that is applied to the intepolator. The controller provides digital-to-analog converter (DAC) codes (fine time delay values) that are converted to an analog values that act as threshold values for the ramp signal. The interpolator generates an output strobe pulse when the ramp generator signal crosses the fine time delay threshold value.
In order to achieve accurate timing and signal sample spacing for the acquired waveform, the frequency and hence the period of the clock signal needs to be known. The fixed clock reference in conjunction with direct counting type frequency measurement support circuitry in the oscilloscope determines the frequency of the gated oscillator. The fixed clock reference is also used to determine the dynamic range of the interpolator and generate a horizontal look-up table of nonlinearity corrected digital-to-analog converter values for the interpolator.
What is needed is a timebase calibration method for a sampling system that does not require direct counting type frequency measurement support circuitry. In addition, the timebase calibration method needs to be capable of determining the clock frequency of multiple clock generators. Further, there is a need for a timebase calibration method that determines the clock frequency of a gated oscillator that is not locked to a fixed reference clock.
Accordingly, the present invention is a timebase calibration method for an equivalent time sampling digitizing instrument having timebase circuitry that includes a strobe generator having coarse time delay circuitry and fine time delay circuitry. The coarse time delay circuitry receives a first portion of a strobe delay input for loading a counter with a coarse time delay value and the fine time delay circuitry receives a second portion of the strobe delay input for generating an analog input signal to an interpolator in the fine time delay circuitry. The analog signal is derived from a fine time delay look-up table of digital values. The coarse time delay circuitry is responsive to a received clock signal from a clock generator and the interpolator is responsive to the analog signal for generating a variable time delay strobe output pulse. The calibration method estimates the frequency of the clock signal from the clock generator using the power spectrum of the difference frequencies between the clock generator signal and a reference oscillator signal. A dynamic range for the interpolator is defined in digital-to-analog converter code values as a function of the clock signal period based on the variance of the difference of a plurality of acquired waveform record pairs of the calibration oscillator signal. Each record pair is acquired at a selected digital-to-analog converter code value with one record being acquired at a first coarse time delay and the other record being acquired with a second coarse time delay. A linear horizontal look-up table of digital-to-analog converter code value points is generated based on the defined dynamic range of the interpolator wherein the code value points are nominally separated by the same number of digital-to-analog converter code values. Residual nonlinearities of the interpolator are characterized over the defined dynamic range of the interpolator based on a plurality of waveform records acquired at an estimated zero crossing point of the calibration oscillator signal. The characterized residual anomalies are scaled to digital-to-analog converter code values, and combined with the digital-to-analog converter code values of the linear horizontal look-up table.
The estimation of the clock signal frequency further includes the steps of generating a coarse estimate of the clock signal frequency and using the coarse estimation as a starting point for generating a fine estimation of the clock signal frequency. Both the coarse and fine estimations of the clock signal frequency acquire waveform records at selected frequency settings of the calibration oscillator. An FFT is applied to the waveform records to obtain the frequency spectra of the difference frequencies of the clock signal and the calibration oscillator signal. The frequency where the non-DC component with the maximum power occurred is determined and indexed to frequency bins for the coarse estimation. The frequency data is squared and a second order polynomial curve fit is applied to squared frequency data. The minimum of the polynomial curve fit is selected as the coarse estimate of the clock signal frequency. For the fine estimation, the sideband power of the frequency where the non-DC component with the maximum power occurred is determined and indexed to frequency bins. The first frequency bin having a complete record of sideband powers is selected and a second order polynomial curve fit is applied to the sideband powers associated with the frequency bin. The frequency of the clock signal is calculated by combining the calibration oscillator frequency defined by the minimum of the polynomial curve fit with the difference frequency defined by the selected frequency bin.
The dynamic range of the intepolator is determined using coarse and fine characterization stages with each characterization stage having an iteration terminal count, a fixed end digital-to-analog converter code value, a start digital-to-analog converter code value, and a digital-to analog converter step value for varying the start digital-to-analog converter code value. For each stage an error array is initialized. The start digital-to-analog converter code values for the coarse characterization are the respective minimum and maximum digital-to-analog converter code values. First and second waveform records are acquired of the calibration oscillator signal using the strobe generator output pulses derived from the clock signal with the start digital-to-analog converter code values and the coarse time delay for the second waveform record being incremented by one from the coarse time delay for the first waveform record. A difference record is generated by performing a point-wise subtraction between the two waveform records. A variance value of the difference record is determined and appended to the error array. For each iteration, the start digital-to-analog converter code value is incremented by the digital-to analog converter step value to generate a new start digital-to-analog converter code value. A new pair of waveform record is acquired, the difference between the waveforms and the variance are determined, and the variance is appended to the error array. The acquisition and processing of the waveform pairs is repeated until the iteration count equals the terminal iteration count. A second order polynomial curve fit is generated on the variance values in the error array, and a digital-to-analog converter code value is correlated to the minimum of the polynomial curve fit as either the coarse or fine start digital-to-analog converter code value.
In the preferred embodiment of the invention the iteration terminal count for the coarse characterization is set to 8 and iteration terminal count for the fine characterization is set to 16. The digital-to-analog converter step value in the coarse characterization is set to xe2x88x92600 and the set value in the coarse characterization is set to xe2x88x9250. The start digital-to-analog converter code value for the fine characterization is set to the coarse start digital-to-analog converter code value minus the digital-to-analog converter step value times one-half the iteration terminal count.
The characterization of the residual nonlinearities in the interpolator includes generating first and second duplicate linear horizontal look-up tables from the linear horizontal look-up table of digital-to-analog converter code value points. The calibration oscillator frequency is initialized for a first mode of operation and the first duplicate linear horizontal look-up table is selected. In the preferred embodiment, the calibration oscillator is set to 64/63 times the clock signal frequency. Digital-to-analog converter code values are generated that characterize nonlinearities in the intepolator which are combined with the corresponding linear digital-to-analog converter code value points in the first duplicate linear horizontal look-up table. The calibration oscillator frequency is re-initialized for a second mode of operation and the second duplicate linear horizontal look-up table is selected. The preferred calibration oscillator frequency in the second mode of operation is 64/65 time the clock signal frequency. A second set of digital-to-analog converter code values are generated that characterize nonlinearities in the intepolator and are combined with the corresponding linear digital-to-analog converter code value points in the second duplicate linear horizontal look-up table. The digital-to-analog converter code value points in the linear horizontal look-up table are replaced with a point-wise average of the digital-to-analog converter code value points from the first and second duplicate linear horizontal look-up tables.
The two modes of operation for generating the digital-to-analog converter code values that characterize nonlinearities in the intepolator acquire a waveform record sample of at least two periods of the calibration oscillator signal with the sample interval equal to the calibration oscillator period and the horizontal position to a zero crossing of the calibration oscillator signal. The mid-point of the first positive transition in the acquired waveform record is determined and another waveform record is acquired over a linear portion of the calibration oscillator signal starting at the mid-point of the positive transition. The slope of the waveform record over a linear portion of the calibration oscillator signal is determined by generating a third order polynomial curve fit on the waveform record and taking the x1 coefficient of the polynomial as the slope. A waveform record is generated from a point-wise weighted average of a plurality of waveform records that capture at least three complete cycles of the interpolator where each cycle represents a transition of the fine tune delay through the total dynamic range of the interpolator. A record of digital-to-analog converter code values corresponding to the point-wise averaged waveform record is also acquired. A record segment from the point-wise averaged waveform record is extracted that contains the first two complete cycles of the interpolator. A tilt slope for the point-wise averaged waveform record is determined by averaging the mean of each of the first two complete cycles. The tilt slope is subtracted from the point-wise averaged waveform record to generate a tilt record where the slope in the record is removed. A new record segment is generated from the tilt record that is the point-wise average of the first two complete cycles of the interpolator. A third degree polynomial curve fit is generated for the record segment which is scaled using the linear portion of the calibration oscillator signal at the zero crossing to produce digital-to-analog converter code values that characterized the nonlinearities in the interpolator. The odd samples are decimated and the resulting digital-to-analog converter code values are combined with the code values in the duplicate horizontal look-up table to generate a table of digital-to-analog converter code values that characterized the nonlinearities in the interpolator. A point-wise average of the digital-to-analog converter code values in the two duplicate horizontal look-up tables is performed with each averaged value replacing the point value in the horizontal look-up table.